#ifndef COMMANDLINEARGSPARSER_H
#define COMMANDLINEARGSPARSER_H

class CommandLineArgsParser
{
public:
    CommandLineArgsParser(int argc, char ** argv);

    const char * getErrorMessage();
    const char * getUsageMessage();

    bool isUsageMessage() { return help; }
    bool isErrorMessage() { return errorCode >= 0; }

    int getDimensions() { return dimensions; }
    char * getInputPath() { return inputPath; }
    char * getOutputPath() { return outputPath; }
    char * getInputTranformPath() { return inputTranformPath; }
    char * getOutputTranformPath() { return outputTranformPath; }

private:
    int getArgumentIndex(int argc, char **argv, const char * argument);
    bool checkFileExists(const char * fileName);

    bool help;
    int errorCode;

    int dimensions;
    char * inputPath, * outputPath, * inputTranformPath, * outputTranformPath;
};

#endif // COMMANDLINEARGSPARSER_H
